// index.js =》类似vue的script
/**
 * 每个页面的js逻辑部分：
 * 1. 必须调用全局函数Page,传入options配置
 * 2. 在传入options配置中定义data变量和方法
 */
Page({
  // 1. 定义当前页面使用的data变量
  // 注意=》vue是函数返回对象：data() {  return {变量} }
  data: {
    // 任意类型
    // 1. 简单类型
    msg: 'hi 小程序',
    bool: true,
    // 2. 复杂类型
    obj: {
      name: '高天一',
      age: 18
    },
    arr: [1, 2, 3],
    // 购物车数量
    count: 1
  },
  // 2. 定义方法
  // 注意=》vue定义方法需要加个methods，小程序不需要
  handlerClick() {
    console.log('点击执行了')
    // 修改data变量
    console.log('页面实例：', this)
    console.log('访问小程序变量：', this.data.msg)
    // this.data.msg = 123 小程序不能直接修改
    // == 小程序必须通过：this.setData({ 变量名:最新值 }) 修改变量
    this.setData({
      // 1. 变量名:最新值（简单或复杂类型）=> 整个修改（覆盖式）
      msg: 'hi vue',
      // arr: [4, 5, 6],
      // 2. 变量路径:最新值（复杂类型）=》修改某一个（局部式）
      // 说明：修改arr数组第二项的值为100
      'arr[1]': 100,
      'obj.age': 20
    })
  },
  handlerFocus() {
    console.log('输入框获取焦点了')
  },
  // 购物车点击加一
  add() {
    /**
     * 需求：
     * 1. 获取当前数量count，判断是否超过9，如果超过
     * 不执行加一
     * 2. 执行加一
     */
    console.log('当前购物车数量：', this.data.count)
    // const newval = this.data.count + 1
    if (this.data.count >= 9) return
    this.setData({
      // count: newval
      count: this.data.count + 1
    })
  },
  // 购物车点击减一
  sub() {
    /**
     * 需求：
     * 1. 获取当前数量count，判断是小于等于1，如果不满足不执行减一
     * 2. 执行减一
     */
    if (this.data.count <= 1) return
    this.setData({
      // count: newval
      count: this.data.count - 1
    })
  }
})
